<?
//Überprüfen ob der Abruf über die Hauptseite erfolgt
if(!defined('InStern')) exit;


include("funk/game/flugfunktionen.funk.php");
include("funk/game/calcMaxFleetSize.php");

if($_GET['do']=="callback") callback($spieler[Id], $_GET[flug]);

include("conf/erfahrung.conf.php");
include("funk/game/schiffsview.funk.php");

function plusminus($id)
{
  $return .= "
  <img src=\"images/minus.png\" onclick=\"if(document.getElementById('view_$id').value>0) document.getElementById('view_$id').value--; skillcheck();\" />
  <input type=\"text\" value=\"0\" id=\"view_$id\" readonly=\"readonly\" size=\"2\" />
  <img src=\"images/plus.png\" onclick=\"document.getElementById('view_$id').value++; skillcheck();\" />";
  return $return;
}
//Kommander dekradieren
if(isset($_GET[degradier]) AND $_SESSION[acid]==$_GET[acid])
{
  $db->query("DELETE FROM kommander WHERE Spieler=$spieler[Id] AND Auftrag='' AND Id=".intval($_GET[degradier]).";");
}
//Kommanderskills editieren
if(isset($_GET[editskills]) AND $_SESSION[acid]==$_GET[acid])
{
  //kommadnerdaten laden, fals der kommander existiert und dem spieler gehört
  if($kommander=$db->fetch_assoc($db->query("SELECT * FROM kommander WHERE Id=".intval($_GET[editskills])." AND Spieler=$spieler[Id];")))
  {
    //NextLevel und Up/Downskills
    $level=calclevel($kommander[Erfahrung]);
    if(isset($config_erfahrung[($level+1)])) $nextlevel=round($kommander[Erfahrung]/$config_erfahrung[($level+1)]*100);
      else $nextlevel=0;
    $upskills=round(($level*$config[commander][skillpoints])-($kommander[Skill1]+$kommander[Skill2]+$kommander[Skill3]+$kommander[Skill4]));
    $downskills=round((date(U)-$kommander[Lastedit])/($config[commander][skilldown]*3600/$config[Speed]));
    $skill[1]=intval($_GET[skill1]);
    $skill[2]=intval($_GET[skill2]);
    $skill[3]=intval($_GET[skill3]);
    $skill[4]=intval($_GET[skill4]);
    //Ups and downs ermitteln
    $up=0; $down=0;
    for($i=0; $i<=4; $i++)
      if($kommander["Skill$i"]<=$skill[$i])
        $up+=$skill[$i]-$kommander["Skill$i"];
      else
      {
        $up-=$kommander["Skill$i"]-$skill[$i];
        $down+=$kommander["Skill$i"]-$skill[$i];
      }
    //Up and downs behandeln
    if($up>$upskills) echo "<div class=\"error\">Du hast zu viele Punkte verteilt</div>";
    elseif($down>$downskills) echo "<div class=\"error\">Du hast nicht genug Downskillpunkte</div>";
    else
    {
      $down=$kommander[Lastedit]+($down*$config[commander][skilldown]*3600/$config[Speed]);
      $db->query("UPDATE kommander SET Skill1=$skill[1], Skill2=$skill[2], Skill3=$skill[3], Skill4=$skill[4], Lastedit=$down WHERE ID=$kommander[Id];");    
     
    }
  }
}
//Gefangenen bearbeiten
if(isset($_GET[gefangener]) AND $_SESSION[acid]==$_GET[acid])
{
  if($_GET[schicksal]==1)
  { //Freilassen
    if($k=$db->fetch_assoc($db->query("SELECT * FROM kommander WHERE Id=".intval($_GET[gefangener])." AND Ziel_Spieler=$spieler[Id] AND Auftrag='gefangen';")))
    {
      $db->query("UPDATE kommander SET Ziel_Planet=Start_Planet, Ziel_X=Start_X, Ziel_Y=Start_Y, Start_Planet=$k[Ziel_Planet], Start_X=$k[Ziel_X], Start_Y=$k[Ziel_Y], Auftrag='back', Berechnung=0, Ziel_Zeit=".date(U)."+Ziel_Zeit-Start_Zeit WHERE Id=$k[Id];");
      igm($k[Spieler],"Dein Kommander $k[Name] wurde freigelassen", "$spieler[Name] hat deinen Kommander $k[Name] (Level: ".calclevel($k[Erfahrung]).") freigelassen. Er ist auf dem Weg nach hause.");
    }
  }
  if($_GET[schicksal]==2)
  { //Hinrichten
    if($k=$db->fetch_assoc($db->query("SELECT * FROM kommander WHERE Id=".intval($_GET[gefangener])." AND Ziel_Spieler=$spieler[Id] AND Auftrag='gefangen';")))
    {
      $db->query("DELETE FROM kommander WHERE Id=$k[Id];");
      igm($k[Spieler],"Dein Kommander wurde hingerichtet","Alle Verhandlungen sind gescheitert. $spieler[Name] hat deinen Kommander auf seinem Planeten $planet[Name] öffentlich hinrichten lassen.");
    }
  }
}



$_SESSION[acid]=rand(100000000,999999999);
?>

<h1>Kommander</h1>
<script type="text/javascript">
  kommander=new Array();
  var aktivKommander=0;
  <?
  //Alle auswählbaren Kommander selectieren
  if($_SESSION[user][Option_Kommanderview]!="on") $kv=" AND Auftrag!='regieren' ";
  else $kv="";
  $abfrage="SELECT * FROM kommander WHERE Spieler='$spieler[Id]' $kv ORDER BY Start_Planet;";
  $result=$db->query($abfrage);
  $last=0;
  $kommanderanzahl=$db->num_rows($result);
  while($erg=$db->fetch_assoc($result))
  {
    //Bild suchen
    if(file_exists("data/kommander/kommander-$erg[Id].png")) $erg[bild]="data/kommander/kommander-$erg[Id].png";
    else $erg[bild]="images/kommander/nopic-$spieler[Fraktion].png";
    //Planetenzugehörigkeit ermitteln
    if($erg[Auftrag]=="back")
      $kommander[$erg[Ziel_Planet]][]=$erg;
    else
      $kommander[$erg[Start_Planet]][]=$erg;
    //NextLevel und Up/Downskills
    $level=calclevel($erg[Erfahrung]);
    if(isset($config[erfahrung][($level+1)])) $nextlevel=round($erg[Erfahrung]/calcexp($level+1)*100);
      else $nextlevel=0;
    $upskills=round(($level*$config[commander][skillpoints])-($erg[Skill1]+$erg[Skill2]+$erg[Skill3]+$erg[Skill4]));
    $downskills=round((date(U)-$erg[Lastedit])/($config[commander][skilldown]*3600/$config[Speed]));
    //Maximale Truppenstärke
    $maxTruppen=calcMaxFleetSize($level);
    if($last>0)
      echo "
      kommander[$last]['next']=$erg[Id];";
    echo "
    kommander[$erg[Id]]= new Array();
    kommander[$erg[Id]]['name']='$erg[Name]';
    kommander[$erg[Id]]['level']=$level;
    kommander[$erg[Id]]['nextlevel']=$nextlevel;
    kommander[$erg[Id]]['upskills']=$upskills;
    kommander[$erg[Id]]['downskills']=$downskills;
    kommander[$erg[Id]]['auftrag']='$erg[Auftrag]';
    kommander[$erg[Id]]['maxTruppen']='$maxTruppen';
    kommander[$erg[Id]]['skill1']='$erg[Skill1]';
    kommander[$erg[Id]]['skill2']='$erg[Skill2]';
    kommander[$erg[Id]]['skill3']='$erg[Skill3]';
    kommander[$erg[Id]]['skill4']='$erg[Skill4]';
    kommander[$erg[Id]]['bild']='$erg[bild]';
    kommander[$erg[Id]]['last']=$last;";    
    $last=$erg[Id];
  }
  echo "
   kommander[$last]['next']=0;";
  ?>
  
  function loadKommander(id)
  {
    if(aktivKommander>0) document.getElementById('k'+aktivKommander).className='kommander_kommander';
    aktivKommander=id;
    document.getElementById('view_kommandername').innerHTML=kommander[id]['name'];
    document.getElementById('view_level').innerHTML=kommander[id]['level'];
    document.getElementById('view_maxtruppen').innerHTML=kommander[id]['maxTruppen'];
    document.getElementById('view_upskills').innerHTML=kommander[id]['upskills'];
    document.getElementById('view_downskills').innerHTML=kommander[id]['downskills'];
    document.getElementById('view_nextlevel').innerHTML=kommander[id]['nextlevel'] + "%";
    document.getElementById('view_skill1').value=kommander[id]['skill1'];
    document.getElementById('view_skill2').value=kommander[id]['skill2'];
    document.getElementById('view_skill3').value=kommander[id]['skill3'];
    document.getElementById('view_skill4').value=kommander[id]['skill4'];
    document.getElementById('k'+id).className='kommander_selected';
    document.getElementById('view_bild').src=kommander[id]['bild'];
  
  }
  function skillcheck()
  {
    //abweichungen berechnen
    var up=0;
    var down=0;
    for(var i=1; i<=4; i++)
    {
      wert=document.getElementById('view_skill'+i).value;
      if(kommander[aktivKommander]['skill'+i]>=wert) 
      {
        down-=kommander[aktivKommander]['skill'+i]-wert;
        up+=kommander[aktivKommander]['skill'+i]-wert;
      }
      else
      {
        up-=wert-kommander[aktivKommander]['skill'+i];
      }        
    }
    document.getElementById('view_upskills').innerHTML=kommander[aktivKommander]['upskills']+up;
    document.getElementById('view_downskills').innerHTML=kommander[aktivKommander]['downskills']+down;
    if(up!=0 || down!=0)
      document.getElementById('speichern').style.visibility='visible';    
    else
      document.getElementById('speichern').style.visibility='hidden';    

  }
  function lastKommander(){if(kommander[aktivKommander]['last']!=0) loadKommander(kommander[aktivKommander]['last']);}
  function nextKommander(){if(kommander[aktivKommander]['next']!=0) loadKommander(kommander[aktivKommander]['next']);}
  
</script>
<?
//Kommanderansicht
if($kommanderanzahl>0)
{
  echo "
  <table class=\"kommander_view\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
      <td rowspan=\"4\" class=\"kommander_view_bild\">
        <img src=\"images/kommander1.png\" width=\"100%\" id=\"view_bild\"/>
      </td>
      <td class=\"kommander_view_head\">
        <a onclick=\"lastKommander()\"><img src=\"images/minus.png\" border=\"0\" /></a>
        <a onclick=\"nextKommander()\"><img src=\"images/plus.png\" border=\"0\" /></a>
        <img src=\"images/star.png\" alt=\"Level\"> <span id=\"view_level\">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <span id=\"view_kommandername\">name</span>
      </td>
    </tr>
      <td class=\"kommander_view_text\">
        Du kannst noch <b><span id=\"view_upskills\">0</span></b> Skillpunkte vergeben und <b><span id=\"view_downskills\">0</span></b> Punkte aufheben
        <input type=\"button\" value=\"speichern\" style=\"visibility:hidden;\" id=\"speichern\" onclick=\"location.href='game.php?page=kommander&editskills='+aktivKommander+'&acid=$_SESSION[acid]&skill1='+document.getElementById('view_skill1').value+'&skill2='+document.getElementById('view_skill2').value+'&skill3='+document.getElementById('view_skill3').value+'&skill4='+document.getElementById('view_skill4').value;\">
      </td>  
    </tr>
    <tr>
      <td>  
        <table width=\"100%\">
          <tr>
            <th width=\"25%\">nächste Stufe:</th>
            <td width=\"15%\" id=\"view_nextlevel\"></th>
            <th width=\"10%\">Angriff:</th>
            <td width=\"20%\">
              ".plusminus("skill3")."
            </td>
            <th width=\"10%\">Taktik:</th>
            <td width=\"20%\">
              ".plusminus("skill1")."
            </td>
          </tr>
          <tr>
            <th>Max Truppen:</th>
            <td id=\"view_maxtruppen\">100</th>
            <th>Verteidigung:</th>
            <td>
              ".plusminus("skill4")."
            </td>
            <th>Teamgeist:</th>
            <td>
              ".plusminus("skill2")."
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>";
}


//####################################ANZEIGE DER PLANETEN
$abfrage = "SELECT Id, Name, PosX, PosY FROM planet WHERE Spieler='$_SESSION[spielerId]' ORDER BY $_SESSION[planetsort]";
$result=$db->query($abfrage);
while($p=$db->fetch_assoc($result))
{
  echo "
  <table width=\"100%\" cellspacing=\"0\" class=\"kommander_planet\">
    <tr class=\"kommander_planet_head\">
      <td width=\"60px\">$p[PosX]:$p[PosY]</td>
      <td>$p[Name]</td>
      <td width=\"80px\" align=\"right\">
        <img src=\"images/goto.png\" style=\"cursor:pointer;\" alt=\"Zum Planeten wechseln\" onclick=\"location.href='game.php?page=kommander&planet=$p[Id]';\" />
        <img src=\"images/raster.png\" style=\"cursor:pointer;\" alt=\"In der Galaxy betrachten\" onclick=\"location.href='game.php?page=galaxy&x=$p[PosX]&y=$p[PosY]';\" />        
      </td>
    </tr>
  </table>";
  settype($kommander[$p[Id]],"array");
  foreach($kommander[$p[Id]] as $key=>$value)
  {
    if(!isset($firstKommander)) $firstKommander=$value[Id];
    echo "
    <table width=\"100%\" cellspacing=\"0\" class=\"kommander_kommander\" id=\"k$value[Id]\">
      <tr style=\"cursor: pointer;\" onclick=\"loadKommander($value[Id]);\">
        <td rowspan=\"2\" width=\"50px\">
          <img src=\"$value[bild]\" width=\"100%\"/>
        </td>
        <td width=\"40px;\">
          <img src=\"images/star.png\" alt=\"Level\"> ".calclevel($value[Erfahrung])." 
        </td>
        <td>
          $value[Name]
        </th>
        <td width=\"80px\" align=\"right\">
          &nbsp;";
          if($value[Auftrag]=="") echo "<img src=\"images/logout.png\" alt=\"Degradieren\" style=\"cursor:pointer;\" onclick=\"if(confirm('Soll der Kommander wirklich seines Amtes enthoben werden?')) location.href='game.php?page=kommander&acid=$_SESSION[acid]&degradier=$value[Id]';\" />";
          echo "
        </td>
      </tr>
      <tr style=\"cursor: pointer;\" onclick=\"loadKommander($value[Id]);\">
        <td>";
          if($value[Auftrag]=="" OR $value[Auftrag]=="gefangen" OR $value[Auftrag]=="regieren") echo "&nbsp;";
          else
          {
            if($value[Auftrag]=="att" OR $row2[Auftrag]=="gematt") $image="images/flug_raus_red.png";
            else $image="images/flug_raus_green.png";
            echo "<img src=\"$image\" width=\"100%\"/>";
          }
          echo "
        </td>
        <td class=\"flug_$value[Auftrag]_head\">
          <img src=\"images/schiff.png\" style=\"cursor:pointer;\" onclick=\"if(document.getElementById('kom$value[Id]').style.display=='block') document.getElementById('kom$value[Id]').style.display='none'; else document.getElementById('kom$value[Id]').style.display='block';\" />&nbsp;";
          if($value[Auftrag]=="") 
            echo "Einsatzbereit";
          elseif($value[Auftrag]=="att") 
            echo "Greift $value[Ziel_X]:$value[Ziel_Y] an";
          elseif($value[Auftrag]=="gematt") 
            echo "Führt gemeinsamen Angriff auf $value[Ziel_X]:$value[Ziel_Y] an";
          elseif($value[Auftrag]=="helpatt") 
            echo "Unterstützt den Angriff auf $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="fraktion") 
            echo "Greift den Fraktionsplaneten $value[Ziel_X]:$value[Ziel_Y] an";
          elseif($value[Auftrag]=="deffraktion") 
            echo "Beschützt den Fraktionsplaneten $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="verleg") 
            echo "Wird mit seiner Flotte auf den Planeten $value[Ziel_X]:$value[Ziel_Y] verlegt";
          elseif($value[Auftrag]=="station") 
            echo "Wird auf dem Planeten $value[Ziel_X]:$value[Ziel_Y] stationiert";
          elseif($value[Auftrag]=="stationed") 
            echo "Ist auf dem Planeten $value[Ziel_X]:$value[Ziel_Y] stationiert";
          elseif($value[Auftrag]=="ress") 
            echo "Ressourcentransport nach $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="kolo") 
            echo "Kolonisiert $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="spion1") 
            echo "Erkundet den Planeten $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="spion2") 
            echo "Erkundet die Flotten auf $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="regieren") 
            echo "Regiert auf $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="back") 
            echo "Ist auf dem Rückflug vom Planeten $value[Ziel_X]:$value[Ziel_Y]";
          elseif($value[Auftrag]=="gefangen")
          {
            $restzeit=($config[commander][dieaway]*3600/$config['Speed'])+$value[Ziel_Zeit]-date(U);
            echo "Gefangen auf  $value[Ziel_X]:$value[Ziel_Y], stirbt in ".showtime($restzeit);
          }
          //Countdown einblenden
          if($value[Auftrag]!="" AND $value[Auftrag]!="regieren" AND $value[Auftrag]!="gefangen")
            echo " <span id=\"count$value[Id]\">".showtime($value[Ziel_Zeit]-date(U))."</span>
            <script type=\"text/javascript\">countdown('count$value[Id]',".($value[Ziel_Zeit]-date(U)).");</script>";
            //Eventuell das zurückholen erlauben
          if($value[Auftrag]!="back" && $value[Auftrag]!="regieren" && $value[Auftrag]!="" AND $value[Auftrag]!="gefangen")
            echo "   ><a href=\"game.php?page=kommander&do=callback&flug=$value[Id]\">Kommander zurückholen</a><";
          echo "          
        </td>
      </tr>
    </table>
    <table width=\"100%\" cellspacing=\"0\" class=\"kommander_kommander\" id=\"kom$value[Id]\" style=\"display:none;\">
      <tr>
        <td width=\"100%\">
          ".schiffsview($value, $spieler[Fraktion])."
        </td>
      </tr>        
    </table>";    
  }
  echo "<script type=\"text/javascript\">loadKommander($firstKommander);</script>";
}
//Alle Hanger zusammenzählen
$abfrage="SELECT SUM(Geb_Hangar) AS Hangar, COUNT(*) AS Anzahl FROM planet WHERE Spieler=$spieler[Id] GROUP BY Spieler;";
$result=$db->query($abfrage);
$hangar=$db->result(0,"Hangar");
$anzahl=$db->result(0,"Anzahl");
$db->query("SELECT COUNT(*) AS Anzahl FROM kommander WHERE Spieler='$spieler[Id]';");
$kommander=$db->result(0,"Anzahl");
$kommanderMax=round(($config[commander][start]*$anzahl)+($config[commander][start]+($config[commander][anstieg]*$hangar)));
if($kommanderMax>$config[commander][max]) $kommanderMax=$config[commander][max];
$frei=$kommanderMax-$kommander;
if($kommander>=$kommanderMax) 
  $disabled="disabled=\"disabled\"";
else
  $disabled="";
echo "<input type=\"button\" onclick=\"location.href='game.php?page=newkommander';\" $disabled value=\"Kommander ernennen ($kommander/$kommanderMax)\" />";
//################################################################################
//##                        Option anzeigen                                     ##
//################################################################################
echo "
 <a href=\"game.php?page=$_SESSION[page]&option=kommanderview\">[";
if($_SESSION[user][Option_Kommanderview]=="on") 
  echo "Regierende Kommander ausblenden";
else 
  echo "Regierende Kommander anzeigen";
echo "]</a>";
   
//GEFANGENE KOMMANDER
$result=$db->query("SELECT * FROM kommander WHERE Auftrag='gefangen' AND Ziel_Spieler=$spieler[Id];");
if($db->num_rows($result)>0)
{
  echo "<h1>Gefangene Kommander</h1>
  Du hast Kommander anderer Spieler bei einer Schlacht gefangen genommen. Du hast nun die Möglichkeit über ihr Schicksal zu entscheiden.
  <table class=\"tabelle\" width=\"100%\">
    <tr class=\"tabelle_head\">
      <th>Planet</th>
      <th>Kommander</th>
      <th>Spieler</th>
      <th>Stirbt in</th>
      <th>Optionen</th>
    </tr>";
    while($k=$db->fetch_assoc($result))
    {
      if($s=$db->fetch_assoc($db->query("SELECT * FROM spieler WHERE Id=$k[Spieler];")))
      {
        $restzeit=($config[commander][dieaway]*3600/$config['Speed'])+$k[Ziel_Zeit]-date(U);
        echo "
        <tr>
          <td>$k[Ziel_X]:$k[Ziel_Y]</th>
          <td>$k[Name] (<img src=\"images/star.png\" alt=\"Level\"> ".calclevel($k[Erfahrung]).")</td>
          <td><a href=\"game.php?page=spielerinfo&id=$s[Id]\">$s[Name]</a> (<a href=\"game.php?page=allyinformation&ally=$s[Ally_Id]\">$s[Ally_Tag]</a>)</td>
          <td>".showtime($restzeit)."</td>
          <td>
            <select onchange=\"location.href='game.php?page=kommander&acid=$_SESSION[acid]&gefangener=$k[Id]&schicksal='+this.value;\">
              <option value=\"0\">Option wählen</option>
              <option value=\"1\">Dem Spieler wiedergeben</option>
              <option value=\"2\">Hinrichten lassen</option>
            </select>
          </td>
        </tr>";         
      }
    }
    echo "
  </table>";
}


?>
